import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * 登录界面类，提供用户登录和注册的功能
 */
public class LoginFrame extends JFrame {
    // 用户名输入框
    private JTextField txtUsername;
    // 密码输入框
    private JPasswordField txtPassword;
    // 登录按钮
    private JButton btnLogin;
    // 注册按钮
    private JButton btnRegister;

    /**
     * 构造方法，初始化登录界面
     */
    public LoginFrame() {
        setTitle("登录系统");
        setSize(400, 200); // 修改窗口大小
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridLayout(3, 2));
        setLocationRelativeTo(null); // 将窗口居中显示

        txtUsername = new JTextField();
        txtPassword = new JPasswordField();
        btnLogin = new JButton("登录");
        btnRegister = new JButton("注册");

        add(new JLabel("用户名:"));
        add(txtUsername);
        add(new JLabel("密码:"));
        add(txtPassword);
        add(btnLogin);
        add(btnRegister);

        // 为登录按钮添加事件监听器
        btnLogin.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                login();
            }
        });

        // 为注册按钮添加事件监听器
        btnRegister.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                register();
            }
        });

        setVisible(true);
    }

    /**
     * 登录方法，验证用户名和密码
     */
    private void login() {
        String username = txtUsername.getText();
        String password = new String(txtPassword.getPassword());

        if (DatabaseConnection.checkUser(username, password)) {
            JOptionPane.showMessageDialog(this, "登录成功！");
            // 跳转到登录成功页面
            new SuccessFrame();
            dispose(); // 关闭当前登录界面
        } else {
            JOptionPane.showMessageDialog(this, "无效的用户名或密码！");
        }
    }

    /**
     * 注册方法，将用户名和密码保存到数据库
     */
    private void register() {
        String username = txtUsername.getText();
        String password = new String(txtPassword.getPassword());

        DatabaseConnection.registerUser(username, password);
        JOptionPane.showMessageDialog(this, "注册成功！");
    }

    /**
     * 程序入口
     */
    public static void main(String[] args) {
        new LoginFrame();
    }

}
